home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 09 - 1993 / 09.06 Jun 93 / Dragging Lists / DragUnitUserProcs.i < prev    next >
Encoding:
Text File  |  1993-01-06  |  2.3 KB  |  84 lines  |  [TEXT/MPS ]

  1. {This include file contains the action procedures for}
  2. {each of the different kinds of drags you can do from}
  3. {one list to another or from a list to itself}
  4.  
  5.  
  6.  
  7. PROCEDURE SetSourceDestLists (ClickPt : Point);
  8. BEGIN
  9.     IF PtInRect(AnchorPoint, gList1^^.RView) THEN
  10.     BEGIN
  11.         gSourceList := gList1;
  12.         gDestLists[1] := gList2;
  13.         gDestLists[2] := gList3;
  14.         gNumDestLists := 2;
  15.         gDragStyle := kDragToOtherList + kDragOutside;
  16.     END
  17.     ELSE
  18.         IF PtInRect(ClickPt, gList2^^.RView) THEN
  19.         BEGIN
  20.             gSourceList := gList2;
  21.             gDestLists[1] := gList3;
  22.             gNumDestLists := 1;
  23.             gDragStyle := kDragToOtherList +
  24.                                             kDragToOwnList + kDragOutside;
  25.         END
  26.     ELSE
  27.         IF PtInRect(ClickPt, gList3^^.RView) THEN
  28.         BEGIN
  29.             gSourceList := gList3;
  30.             gDestLists[1] := gList1;
  31.             gDestLists[2] := gList2;
  32.             gNumDestLists := 2;
  33.             gDragStyle := kDragToOtherList+kDragOutside;
  34.         END;
  35. END;
  36.  
  37. {-------------------------------------------------------------------------}
  38.  
  39. PROCEDURE DragToDestAction (SourceList : ListHandle; SourceCell : Point;
  40.                             DestList : ListHandle; DestCell : Point);
  41. {insert data from SourceList into the DestList}
  42. VAR
  43.     STemp : Str255;
  44.     DLen : Integer;
  45. BEGIN
  46.     DLen := SizeOF(STemp);
  47.     LGetCell(@Stemp, DLen, SourceCell, SourceList);
  48.     DestCell.v := LAddRow (1, DestCell.v, DestList);
  49.     LSetCell (@Stemp, DLen, DestCell, DestList);
  50. END;
  51.  
  52. {-------------------------------------------------------------------------}
  53.  
  54. PROCEDURE DragToSourceAction (SourceList : ListHandle; SourceCell : Point;
  55.                               DestList : ListHandle; DestCell : Point);
  56. {swap the data in the Source and Dest cells}
  57. VAR
  58.     STemp, DTemp : Str255;
  59.     SLen, DLen : Integer;
  60. BEGIN
  61.     DLen := SizeOF(STemp);    SLen := SizeOF(STemp);
  62.     LGetCell (@STemp, SLen, SourceCell, SourceList);
  63.     LGetCell (@DTemp, DLen, DestCell, DestList);
  64.     LSetCell (@STemp, SLen, DestCell, DestList);
  65.     LSetCell (@DTemp, DLen, SourceCell, SourceList);
  66. END;
  67.  
  68. {-------------------------------------------------------------------------}
  69.  
  70. PROCEDURE BadDragAction (SourceList : ListHandle; SourceCell : Point);
  71. {do nothing}
  72. BEGIN
  73.     Sysbeep(1);
  74. END;
  75.  
  76. {-------------------------------------------------------------------------}
  77.  
  78. PROCEDURE DragOutsideAction (SourceList : ListHandle; SourceCell : Point);
  79. {Delete the item at SourceCell in SourceList}
  80. BEGIN
  81.     LDelRow (1, SourceCell.v, SourceList);
  82. END;
  83.  
  84.